<?xml version="1.0" ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
	<xsd:element name="Font" type="FontType" />

	<xsd:complexType name="FontType">
		<xsd:sequence>
			<xsd:element name="Mapping" type="MapType" maxOccurs="unbounded" minOccurs="0" />
            <xsd:choice maxOccurs="unbounded" minOccurs="0">
                <xsd:element name="GlyphSet" type="GlyphSetType" />
                <xsd:element name="GlyphRange" type="GlyphRangeType" />
                <xsd:element name="Glyph" type="GlyphType" />
            </xsd:choice>
		</xsd:sequence>
		<xsd:attributeGroup ref="FontAttrs" />
	</xsd:complexType>
	<xsd:complexType name="MapType">
		<xsd:attribute name="Codepoint" type="xsd:nonNegativeInteger" use="required" />
		<xsd:attribute name="Image" type="xsd:string" use="required" />
		<xsd:attribute name="HorzAdvance" type="xsd:integer" use="optional" default="-1" />
	</xsd:complexType>
	<xsd:complexType name="GlyphType">
		<xsd:attribute name="Codepoint" type="xsd:nonNegativeInteger" use="required" />
	</xsd:complexType>
	<xsd:complexType name="GlyphRangeType">
		<xsd:attribute name="StartCodepoint" type="xsd:nonNegativeInteger" use="required" />
		<xsd:attribute name="EndCodepoint" type="xsd:nonNegativeInteger" use="required" />
	</xsd:complexType>
	<xsd:complexType name="GlyphSetType">
		<xsd:attribute name="Glyphs" type="xsd:string" use="required" />
	</xsd:complexType>
	<xsd:attributeGroup name="FontAttrs">
		<xsd:attribute name="Name" type="xsd:string" use="required" />
		<xsd:attribute name="Filename" type="xsd:string" use="required" />
		<xsd:attribute name="ResourceGroup" type="xsd:string" use="optional"  default="" />
		<xsd:attribute name="Type" use="required">
			<xsd:simpleType>
				<xsd:restriction base="xsd:string">
					<xsd:enumeration value="Dynamic" />
					<xsd:enumeration value="Static" />
				</xsd:restriction>
			</xsd:simpleType>
		</xsd:attribute>
		<xsd:attribute name="Size" type="xsd:nonNegativeInteger" use="optional" default="12" />
		<xsd:attribute name="FirstCodepoint" type="xsd:nonNegativeInteger" use="optional" default="32" />
		<xsd:attribute name="LastCodepoint" type="xsd:nonNegativeInteger" use="optional" default="127" />
		<xsd:attribute name="NativeHorzRes" type="xsd:nonNegativeInteger" use="optional" default="640" />
		<xsd:attribute name="NativeVertRes" type="xsd:nonNegativeInteger" use="optional" default="480" />
		<xsd:attribute name="AutoScaled" type="xsd:boolean" use="optional" default="false" />
		<xsd:attribute name="AntiAlias" type="xsd:boolean" use="optional" default="true" />
	</xsd:attributeGroup>
</xsd:schema>